package com.docmanage.am.domain.vo;

import com.docmanage.am.domain.AmApproval;
import com.docmanage.common.annotation.Excel;
import com.docmanage.common.core.domain.BaseEntity;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.fasterxml.jackson.annotation.JsonProperty;
import lombok.Data;

import java.math.BigDecimal;
import java.util.Date;
import java.util.List;

/**
 * 借款详情信息展示
 * @author yhd
 * @create 2023/12/4 11:32
 */
@Data
public class AmBorrowDetailsVo extends BaseEntity {

    /**
     * 完成审批审批数据 或用作详情展示时的数据
     */
    private List<AmApproval> amApprovalList;


    /**
     * 未审批数据或当前是需要操作的审批数据
     */
    private AmApproval amApproval;
    /**
     * 主键
     */
    private Long id;

    private Long tenantId;

    /**
     * 档案id
     */
    private Long descId;

    /**
     * 案卷号
     */
    @Excel(name = "案卷号")
    private String fileCode;

    /**
     * 提名
     */
    @Excel(name = "提名")
    private String title;

    /**
     * 归还时间
     */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "归还时间", width = 30, dateFormat = "yyyy-MM-dd")
    private Date returnTime;

    /**
     * 借阅时间
     */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "借阅时间", width = 30, dateFormat = "yyyy-MM-dd")
    private Date borrowTime;

    /**
     * 借阅天数
     */
    @Excel(name = "借阅天数")
    @JsonProperty("days")
    private BigDecimal days;

    /**
     * 借阅用途
     */
    @Excel(name = "借阅用途")
    private String reason;

    /**
     * 申请流程
     */
    @Excel(name = "申请流程")
    private String flowKey;

    /**
     * 流程实例id
     */
    @Excel(name = "流程实例id")
    private String flowInsId;

    /**
     * 提交时间
     */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "提交时间", width = 30, dateFormat = "yyyy-MM-dd")
    private Date submitTime;

    /**
     * 流程状态。0：未提交。1：审批中。2：已完成
     */
    @Excel(name = "流程状态。0：未提交。1：审批中。2：已完成")
    private String status;

    /**
     * 借阅人id
     */
    private Long userId;

    /**
     * 借阅人
     */
    @Excel(name = "借阅人")
    private String userName;

    /**
     * 部门ID（单据拥有部门）
     */
    private Long deptId;

    /**
     * 单据类型
     */
    private String billType;

    /**
     * 单据类型
     */
    @Excel(name = "单据类型")
    private String billName;

    /**
     * 单据编码
     */
    @Excel(name = "单据编码")
    private String billCode;

}
